package main

import "fmt"

var (
	aaa = 3
	bbb = 4
)

func variableZeroValue() {

	//定义变量
	var a int
	var s string
	fmt.Printf("%d %q\n", a, s)
}

func variableInitialValue() {

	var a, b int = 3, 4
	var s string = "abc"
	fmt.Println(a, s, b)

}

func variableTypeDeduction() {
	var a, b, c, d = 3, 4, true, "aaa"
	var s = "abc"
	b = 5
	fmt.Println(a, s, b, c, d)
}

func variableShorter() {
	a, b, c, s := 3, 4, true, "aaa"
	b = 5
	fmt.Println(a, b, c, s)
}

func enums() {
	const (
		cpp = iota
		_
		python
		golang
		javascript
	)
	fmt.Println(cpp, python, golang, javascript)
}

//定义变量很简单，可多个可单个，可以使用var,若不使用var 就用:=。变量可以赋初值，也可以不赋值，后续可以修改。
//编译器可以自动识别类型，可以不加类型
//变量可以在函数里面定义，也可以在函数外面定义，在函数外面定义必须用var，不能用:=

func main() {
	fmt.Println("Hello World")
	variableZeroValue()
	variableInitialValue()
	variableTypeDeduction()
	variableShorter()
	fmt.Println(aaa, bbb)
	enums()
}
